/*
 * Project Name spring-boot-tools
 * File Name IExpandableData
 * Package Name com.huxiaosu.tools.common.base.extra
 * Create Time 2024/7/11
 * Create by name：liujie
 */
package com.huxiaosu.tools.common.base.extra;

import java.util.Map;

/**
 * 自定义扩展数据
 *
 * @author liujie
 * @date 2024/7/11 17:22
 */
public interface IExpandableData {
    /**
     * 获取扩展数据
     * @return java.util.Map<java.lang.String,java.lang.Object>
     * @author liujie
     * @date 2024/3/18 21:21
     */
    Map<String, Object> getExtraData();

    /**
     * 重置扩展数据
     *
     * @author liujie
     * @date 2024/3/18 21:21
     */
    void setExtraData(Map<String, Object> extraData);

    /**
     * 添加一个扩展数据
     * @param key key
     * @param data data
     * @author liujie
     * @date 2024/3/18 21:21
     */
    void putExtraData(String key, Object data);

    /**
     * 获取指定Key的数据
     * @param key key
     * @return java.util.Map<java.lang.String,java.lang.Object>
     * @author liujie
     * @date 2024/3/18 21:21
     */
    Object getExtraDataByKey(String key);

    /**
     * 判断是否包含指定的数据
     * @return java.util.Map<java.lang.String,java.lang.Object>
     * @author liujie
     * @date 2024/3/18 21:21
     */
    boolean containsExtraDataKey(String key);
}